Many programs go through extensive testing before they are released, in an attempt to eliminate bugs and improve performance. Often, testing is done ad-hoc. A tester creates a suite of tests based on past experience and/or previously encountered bugs. To create the suite of tests, the tester will often write a testing application that exercises the program in a variety of ways. This testing application is written such that at certain points, messages are logged to indicate success or failure of a particular test.
Testers often have different ideas as to what tests are important to perform and what data to collect from each test. Moreover, testers often create a proprietary format for logging messages. When it is determined that data should be logged in a different format and/or that different data should be collected, current logging mechanisms require re-writing and re-running the testing application. Furthermore, to interpret the data logged by a test in another way often requires creating another program to analyze the data. If a log does not include sufficient information, the testing application may need to be rewritten and rerun.
What is needed is a way to provide users with a uniform method and system for logging messages in a test environment. The method and system should be extensible and flexible to allow for changes to the way data is displayed, logged, or interpreted without requiring recompilation of a testing application. The method and system should log information suitable for detecting and eliminating bugs.